Открывается хранилище как обычный файл, только с большим количеством настроек:
HRESULT StgOpenStorage ( const WCHAR *pwcsName, //имя IStorage *pstgPriority, //используется для повторного открытия при //наличии интерфейса Istorage, обычно NULL DWORD grfMode, //режим доступа SNB snbExclude, //Обычно NULL, но может использоваться для //исключения объектов из хранилища DWORD reserved, //Всегда 0 (зарезервирован) IStorage **ppstgOpen //Интерфейс IStorage, который //возвращается при удачном вызове );
Пример. В данном примере мы открываем уже созданное хранилище. Создали мы его в шаге "Шаг 59 - Корневое хранилище - создание".
#include "stdafx.h"
#include "windows.h"
#include "ole2.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
OLECHAR filename[20];
wcscpy(filename,L"test.stg");
LPSTORAGE pIStorage=NULL;
HRESULT rez;
rez=StgOpenStorage(filename,NULL, STGM_READ| STGM_SHARE_EXCLUSIVE,
NULL,0,&pIStorage);
if (!FAILED(rez))
{
cout << "Ok open" << endl;
lpStorage->Release();
}
else cout << "Error open" << endl;
return 0;
}